package com.aorise.service.diagnosis;

import com.aorise.model.diagnosis.*;
import com.aorise.utils.page.Page;

import java.util.List;
import java.util.Map;

/**
 * @Author:cat
 * @Desicription: 诊断任务接口服务类
 * @Date:Created in 2019-06-24
 * @Modified By:
 */
public interface DiagnosisPlanService {

    /**
     * @Author:cat
     * @Description 查询所有自动诊断任务信息
     * @Date:2019-06-24
     * @Return: List<DiagnosisPlanModel> 诊断任务信息集合
     * @Modified By:
     */
     List<DiagnosisPlanModel> getAllAutoDiagnosisPlan();

    /**
     * @Author:cat
     * @Description 根据条件查询诊断任务详情
     * @params: id 主键ID
     * @params: createUser 创建人ID
     * @Date:2019-06-24
     * @Return: HaltModel 诊断任务信息
     * @Modified By:
     */
    DiagnosisPlanModel getDiagnosisByIdCreateUser(Integer id, Integer createUser);

    /**
     * @Author:cat
     * @Description 新增自动诊断任务信息
     * @params: diagnosisPlanAddVO 诊断任务信息
     * @params: diagnosisParamAddVOS 诊断任务参数信息
     * @params: cameraIds 诊断任务设备ID
     * @Date:2019-06-24
     * @Return: Integer 主键
     * @Modified By:
     */
    Integer addAutoDiagnosisPlan(DiagnosisPlanAddVO diagnosisPlanAddVO,List<DiagnosisParamAddVO> diagnosisParamAddVOS,String cameraIds);

    /**
     * @Author:cat
     * @Description 更新人工诊断任务信息
     * @params: pName 任务名称
     * @params: createUser 创建人ID
     * @params: cameraIds 设备ID
     * @params: diagnosisParamAddVOS 诊断任务参数集合
     * @params: isRun 是否执行：1是，2否
     * @Date:2019-06-24
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer updateArtificialDiagnosisPlan(String pName, Integer createUser, String cameraIds,
                                                 List<DiagnosisParamAddVO> diagnosisParamAddVOS,Integer isRun);

    /**
     * @Author:cat
     * @Description 更新自动诊断任务信息
     * @params: diagnosisPlanEditVO 诊断任务信息
     * @params: diagnosisParamAddVOS 诊断任务参数信息
     * @params: cameraIds 诊断任务设备ID
     * @Date:2019-06-24
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer updateAutoDiagnosisPlan(DiagnosisPlanEditVO diagnosisPlanEditVO,List<DiagnosisParamAddVO> diagnosisParamAddVOS,String cameraIds);

    /**
     * @Author:cat
     * @Description 删除自动诊断任务信息
     * @params: map 查询条件Map
     * @Date:2019-06-24
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer deleteDiagnosisPlan(Map<String, Object> map);

    /**
     * @Author:cat
     * @Description 开启关闭自动诊断任务信息
     * @params: map 查询条件Map
     * @Date:2019-06-24
     * @Return: Integer 影响行数
     * @Modified By:
     */
    Integer updateAutoDiagnosisPlanIsOpen(Map<String, Object> map);

    /**
     * @Author:cat
     * @Description 查询所有诊断队列任务
     * @Date:2019-06-25
     * @Return: List<diagnosisMQModel> 诊断任务信息集合
     * @Modified By:
     */
    List<DiagnosisMQModel> getDiagnosisMQ();

    /**
     * @Author:cat
     * @Description 每小时查询是否有要执行的自动巡检任务
     * @Date:2019-06-25
     * @Modified By:
     */
    void getRunDiagnosis();

}
